package result

// Codes 状态码
type Codes struct {
	SUCCESS         uint
	FAILED          uint
	Message         map[uint]string
	NOAUTH          uint
	AUTHFORMATERROR uint
}

// ApiCode 状态码
var ApiCode = &Codes{
	SUCCESS:         200,
	FAILED:          501,
	NOAUTH:          403,
	AUTHFORMATERROR: 405,
}

// 状态信息
func init() {
	// 初始化ApiCode.Message字典，将状态码映射到对应的中文消息
	ApiCode.Message = map[uint]string{
		// 状态码SUCCESS映射到中文消息"成功"
		ApiCode.SUCCESS: "成功",
		// 状态码FAILED映射到中文消息"失败"
		ApiCode.FAILED: "失败",
		// 状态码NOAUTH映射到中文消息"请求头中的auth为空"
		ApiCode.NOAUTH: "请求头中的auth为空",
		// 状态码AUTHFORMATERROR映射到中文消息"请求头中的 auth 格式错误"
		ApiCode.AUTHFORMATERROR: "请求头中的 auth 格式错误",
	}
}

// 供外部调用
func (c *Codes) GetMessage(code uint) string {
	// 从c.Message映射中获取对应code的消息
	message, ok := c.Message[code]
	// 如果code不存在于映射中，返回空字符串
	if !ok {
		return ""
	}
	// 如果code存在于映射中，返回对应的消息
	return message

}
